<h1>Push</h1>

<p>Push is used to push values on the Flash Player's internal stack.</p>
<table>

<tr>
<th nowrap>Field Name</th>
<th>Type</th>
<th>Size</th>
<th>Description</th>
</tr>

<tr>
<td nowrap valign="top"><a name="ActionType">Type</a></td>
<td nowrap valign="top">unsigned int</td>
<td nowrap valign="top" align="right">8</td>
<td>Identifies the action when it is encoded.</td>
</tr>

<tr>
<td nowrap valign="top"><a name="ActionLength">Length</a></td>
<td nowrap valign="top">unsigned int</td>
<td nowrap valign="top" align="right">16</td>
<td>The number of bytes in the rest of the encoded action. The total number of
bytes in the encoded action is Length+3.</td>
</tr>

<tr>
<td nowrap valign="top">values</td>
<td nowrap valign="top">Value</td>
<td nowrap valign="top" align="right">[n]</td>
<td>An array of values that will be pushed onto the Flash Player's Stack and used 
when executing actions.</td>
</tr>
</table>

<p>The Push action supports the full range of data types supported by Flash:</p>

<table>
<tr><th align="left">Data Type</th><th align="left">Description</th></tr>
<tr><td nowrap valign="top" width="20%">Boolean</td><td>A boolean value, 1 (true) or 0 (false).</td></tr>
<tr><td nowrap valign="top" width="20%">Integer</td><td>A signed 32-bit integer, range -2,147,483,648 to 2,147,483,647.</td></tr>
<tr><td nowrap valign="top" width="20%">Double</td><td>A double-precision (64-bit) floating-point number, range approximately +/- 1.79769313486231570E+308.</td></tr>
<tr><td nowrap valign="top" width="20%">String</td><td>A String. The string is encoded as using the UTF-8 encoding which is backward compatible with ASCII encoding supported in Flash 5.</td></tr>
<tr><td nowrap valign="top" width="20%">Register Index</td><td>The number (0,..3) of one of the Flash player's internal registers.</td></tr>
<tr><td nowrap valign="top" width="20%">Table Index</td><td>An index into a table of string literals defined using the Table action.</td></tr>
<tr><td nowrap valign="top" width="20%">Null</td><td>A null value.</td></tr>
<tr><td nowrap valign="top" width="20%">Void</td><td>A void value.</td></tr>
<tr><td nowrap valign="top" width="20%">Movie Clip Property</td><td>A reserved number used to identify a specific property of a movie clip.</td></tr>
<tr><td nowrap valign="top" width="20%">Player Property</td><td>A reserved number used to identify a specific property of the Flash Player.</td></tr>
</table>

<p>Movie Clip properties are used to access the attributes of the specified movie clip. To simplify using movie clip properties the values are defined as constants in the Push action:</p>

<table>
<tr><th nowrap align="left">Name</th><th align="left">Description</th></tr>
<tr><td>_x</td><td>The x-coordinate of the current drawing point.</td></tr>
<tr><td>_y</td><td>The y-coordinate of the current drawing point.</td></tr>
<tr><td>_xscale</td><td>The scale of the player window in the x-axis.</td></tr>
<tr><td>_yscale</td><td>The scale of the player window in the y-axis.</td></tr>
<tr><td>_currentframe</td><td>The number of the frame currently being displayed</td></tr>
<tr><td>_totalframes</td><td>The total number of frames in the current movie clip being played.</td></tr>
<tr><td>_alpha</td><td>Whether the player supports alpha channel transparency in colours.</td></tr>
<tr><td>_visible</td><td>Whether the player is currently visible.</td></tr>
<tr><td>_width</td><td>The width of the player, in pixels, on the screen.</td></tr>
<tr><td>_height</td><td>The height of the player, in pixels, on the screen.</td></tr>
<tr><td>_rotation</td><td>The rotation of the movie clip in degrees</td></tr>
<tr><td>_target</td><td>The current target or context for actions.</td></tr>
<tr><td>_framesloaded</td><td>The number of frames from the movie clip that are currently loaded</td></tr>
<tr><td>_name</td><td>The name of a movie clip.</td></tr>
<tr><td>_droptarget</td><td>Then name of the movie clip currently being dragged.</td></tr>
<tr><td>_url</td><td>The URL of the current movie clip being played.</td></tr>
</table>

<p>Player properties are used to access the attributes of the Player showing the movie clips. To simplify using player properties the values are defined as constants in the Push action:</p>

<table>
<tr><th nowrap align="left">Name</th><th align="left">Description</th></tr>
<tr><td>_quality</td><td>Whether the player is set to display movie clips at high quality.</td></tr>
<tr><td>_highquality</td><td>Whether the player is set to display movie clips at high quality.</td></tr>
<tr><td>_focusrect</td><td>Whether a bounding yellow rectangle is drawn around the current object (a sprite or button) has the keyboard and mouse focus.</td></tr>
<tr><td>_soundbuftime</td><td>The number of seconds to buffer streaming sound before playing</td></tr>
<tr><td>_xmouse</td><td>The current x-coordinate of the mouse location.</td></tr>
<tr><td>_ymouse</td><td>The current y-coordinate of the mouse location.</td></tr>
</table>

<h2>History</h2>

<p>The Push action represents the Push action of the Macromedia Flash (SWF) File Format Specification. It was introduced in Flash 4 and contained either an integer or string argument. It was extended in Flash 5 to support a number of different data types and allow more than one value to be added in a single action.</p>
